
import Head from 'next/head'

<Head>
  <script>
    {
      `(function() {
         var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?e60fb290e204e04c5cb6f79b0ac1e697";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
       })();`
    }
  </script>
</Head>

![LangChain](https://pica.zhimg.com/50/v2-56e8bbb52aa271012541c1fe1ceb11a2_r.gif)




Vespa.ai作为LangChain检索器
===


本笔记展示了如何使用Vespa.ai作为LangChain检索器。
Vespa.ai是一个高效的结构化文本和向量搜索平台。
更多信息请参见[Vespa.ai](https://vespa.ai)。

为了创建一个检索器，我们使用[pyvespa](https://pyvespa.readthedocs.io/en/latest/index)来
创建到Vespa服务的连接。

```python
from vespa.application import Vespa

vespa_app = Vespa(url="https://doc-search.vespa.oath.cloud")

```

这将创建一个连接到Vespa服务的连接，这里是Vespa文档搜索服务。
使用pyvespa，您还可以连接到
[Vespa Cloud实例](https://pyvespa.readthedocs.io/en/latest/deploy-vespa-cloud)
或者本地
[Docker实例](https://pyvespa.readthedocs.io/en/latest/deploy-docker)。

连接到服务后，您可以设置检索器：

```python
from langchain.retrievers.vespa_retriever import VespaRetriever

vespa_query_body = {
    "yql": "select content from paragraph where userQuery()",
    "hits": 5,
    "ranking": "documentation",
    "locale": "en-us"
}
vespa_content_field = "content"
retriever = VespaRetriever(vespa_app, vespa_query_body, vespa_content_field)

```

这里创建了一个LangChain检索器，从Vespa应用程序中获取文档。在此，最多从“段落”文档类型中的`content`字段中检索5个结果，使用`doumentation`作为排名方法。 `userQuery()`将替换为从LangChain传递而来的实际查询。

有关更多信息，请参阅[pyvespa文档](https://pyvespa.readthedocs.io/en/latest/getting-started-pyvespa#Query)。

现在，您可以返回结果并继续在LangChain中使用这些结果。

```python
retriever.get_relevant_documents("what is vespa?")

```

